'use strict';
/**
 * Created by FreezeSoul on 2015/10/30.
 */
define([
        'Base'
    ],
    function(Base) {


        var Chart = Base.extend({
            /**
             * 图表类对象
             * @class Chart
             * @constructor
             * @param {LayoutManager} layout 布局容器
             */
            constructor: function (layout) {
            },
            /**
             * 方法说明
             * @method init 图表初始化（设计器、播放器）。支持返回promise对象，对于需要异步初始化可选用这种方式
             * @for Chart
             * @param {Element} element 图表渲染容器
             * @return {None/promise}
             */
            init: function (element) {
            },
            /**
             * 方法说明
             * @method example 加载示例样式（设计器、播放器）
             * @for Chart
             * @param {None}
             * @return {None}
             */
            example: function () {
            },
            /**
             * 方法说明
             * @method setData 设置数据信息（设计器、播放器）
             * @for Chart
             * @param {Array} data 图表渲染数据对象
             * @return {None}
             */
            setData: function (data) {
            },
            /**
             * 方法说明
             * @method setOption 设置图表参数对象（设计器、播放器）
             * @for Chart
             * @param {Object} option 图表自描述配置对象，具体内容可调试查看
             * @return {Object} option 图表自描述配置对象，具体根据图表要求自行设计
             */
            setOption: function (option) {
            },
            /**
             * 方法说明
             * @method getOption 获取图表参数对象（设计器、播放器）
             * @for Chart
             * @param {None}
             * @return {Object} option 图表自描述配置对象，具体根据图表要求自行设计
             */
            getOption: function () {
            },
            /**
             * 方法说明
             * @method setTheme 设置图表主题样式，如需支持换肤，需预定义几套主题，页面统一管理（设计器、播放器）
             * @for Chart
             * @param {String} theme 主题名称，传入名称参考config.json文件themes定义，如包装图表已支持主题，需映射至图表的对应主题
             * @return {None}
             */
            setTheme: function (theme) {
            },
            /**
             * 方法说明
             * @method resize 页面尺寸变化重绘大小
             * @for Chart
             * @param {None}
             * @return {None}
             */
            resize: function () {
            },
            /**
             * 方法说明
             * @method showLoading 开始加载Loading样式
             * @for Chart
             * @param {None}
             * @return {None}
             */
            showLoading: function () {
            },
            /**
             * 方法说明
             * @method hideLoading 关闭加载Loading样式
             * @for Chart
             * @param {None}
             * @return {None}
             */
            hideLoading: function () {
            },
            /**
             * 方法说明
             * @method dispose 销毁图表控件
             * @for Chart
             * @param {None}
             * @return {None}
             */
            dispose: function () {
            },
            /**
             * 方法说明
             * @method getElement 获取图表DOM对象
             * @for Chart
             * @param {None}
             * @return {Dom} 图表DOM对象
             */
            getElement: function () {
            },
            /**
             * 方法说明
             * @method getChart 获取图表原对象
             * @for Chart
             * @param {None}
             * @return {Object} 图标实例对象，注：因不同封装控件而不同，特殊用途
             */
            getChart: function () {
            }
        });

        return Chart
    }
);